When software developers correct a problem in the source code of a computer program (such as an operating system kernel or an application program), they typically create and distribute a patch, which includes a set of changes to the source code. Software vendors or system administrators apply the patch to their copy of the source code, build a new binary copy of the computer program, and then distribute that new binary program to servers and end-user machines. The computer program must then be restarted in order to benefit from the update. Restarting programs in order to update them can cause undesirable disruption.
A “hot update” changes a running program (also referred to as computer program) without restarting it. However, there are several challenges relating to the use of conventional patches as the bases for hot updates.